<?php
header("Content-type:text/html;charset=utf8 ");

//如果 收到 post提交的数据（非空），表示数据来自表单提交，执行数据修改功能
if (!empty($_POST)){
    $id=$_POST["id"];
        //映射
    $productMap=[
        "name"=>"productName",
        "price"=>"productPrice",
        "pic" =>"productPic",
        "intro"=>"productIntro"
    ];
    //遍历表单提交的数据
    $dataArr=[];
    foreach ($_POST as $k => $v){
        if ($k=='id'){
            break;
        }
        $mapKey=$productMap["$k"];
        $dataArr[]="$mapKey = '$v'";
    }

    print_r($dataArr);
    //查询文件名称是否一致，若不一致则删除后上传新图片
    $oldPic=serchProduct($id)['productPic'];
    $newPic=$oldPic;
    if (isset($_FILES['pic'])) {
        $file =$_FILES['pic'];
        print_r($file);
        if (!empty($file['name'])){
            $newPic="imgs/".$file['name'];
        }
        if ($oldPic!=$newPic){
            //删除原本图片
            deletePic($oldPic);
            //上传新图片
            uplodePic($file);
        }
    }
    $dataArr[]="productPic = '$newPic'";
    $dataStr=implode(',',$dataArr);
    $updateSql=" update productinfo set ".$dataStr." where productID = $id ";
    $link=require_once "sqlLink.php";
    $link=require"sqlLink.php";
    $res=mysqli_query($link,$updateSql);
    if ($res){
        header('location:back_product_list.php');
        die;
    }else{
        echo "<script>alert('数据修改失败！')</script>";
        echo "sql语句：".$updateSql;
    }
}else{
    $id=$_GET["proID"];
    $Data=serchProduct($id);
    $pName =$Data['productName'];
    $pPrice=$Data['productPrice'];
    $pPic =$Data['productPic'];
    $pIntro=$Data['productIntro'];
    require_once "Views/pduUpdate.html";
}

//查询商品信息
function serchProduct($id){
    $dateSql="select * from productinfo where productID= $id";
    $link=require_once 'sqlLink.php';
    $res=mysqli_query($link,$dateSql);
    if (!$res){
        echo "Sql语句".$dateSql;
    }
    $Data=mysqli_fetch_assoc($res);
    return $Data;
    $stmt->close();$link->close();
}

//上传文件
function uplodePic($file){
    /* --------- 上传图片 ---------------*/
    $fileName = $file['name'];//文件原始名称
    $tmpName = $file['tmp_name'];//临时文件路径
    $error = $file['error'];
    // 确保文件名是安全的，避免目录遍历攻击
    $fileName = basename($fileName);
    // 检查是否有上传错误
    if ($error !== UPLOAD_ERR_OK) {
        die("图片上传失败，错误代码: " .$error);
    }
    // 移动上传的文件到指定目录
    elseif (!move_uploaded_file($tmpName, "./imgs/{$fileName}")) {
        die("图片上传失败");
    }
}
function deletePic($filePath) {
    /* --------- 删除图片 ---------------*/
    // 检查文件是否存在
    if (file_exists($filePath)) {
        // 尝试删除文件
        if (!unlink($filePath)) {
            die("图片删除失败");
        }
    }
}
